package com.powernode.ssm.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.powernode.ssm.pojo.po.UserLoginToken;
import org.apache.ibatis.annotations.*;

import java.time.LocalDateTime;

@Mapper
public interface UserLoginTokenMapper extends BaseMapper<UserLoginToken> {
    // 可扩展自定义方法，比如根据 userId 查询 token

    /**
     * 删除过期的 token 记录（expire_time < 当前时间）
     */
    @Delete("DELETE FROM user_login_token WHERE expire_time < NOW()")
    int deleteExpiredTokens();

    /**
     * 根据用户ID查询 token 和 expire_time
     *
     * @param userid 用户ID
     * @return UserLoginToken 实体，包含 token 和 expire_time；如果不存在则返回 null
     */
    @Select("SELECT token, expire_time FROM user_login_token WHERE user_id = #{userid} LIMIT 1")
    UserLoginToken findByUserId(@Param("userid") String userid);


    /**
     * 更新指定用户的 token 过期时间
     * @param userid 用户ID
     * @param newExpireTime 新的过期时间
     * @return 影响的行数
     */
    @Update("UPDATE user_login_token SET expire_time = #{newExpireTime} WHERE user_id = #{userid}")
    int updateExpireTimeById(@Param("userid") String userid, @Param("newExpireTime") LocalDateTime newExpireTime);
}